package com.ruoyi.audit.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.data.annotation.Transient;

/**
 * 财务对象 finance_info
 *
 * @author ruoyi
 * @date 2024-05-12
 */
public class Audit extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 账单主键 */
    private Long id;

    /** 交易时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "交易时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date dealTime;

    /** 费用类型：0房租 1押金 */
    @Excel(name = "费用类型：0房租 1押金")
    private Long costType;

    /** 金额（元） */
    @Excel(name = "金额", readConverterExp = "元=")
    private BigDecimal money;

    /** 收入-支出方式 : 0收入 1支出 */
    @Excel(name = "收入-支出方式 : 0收入 1支出")
    private Long putPayType;

    /** 支付方式:  1微信 2支付宝 3银行卡 */
    @Excel(name = "支付方式:  1微信 2支付宝 3银行卡")
    private Long payType;

    /** 房源外键 */
    @Excel(name = "房源外键")
    private Long houseId;

    /** 用户外键 */
    @Excel(name = "用户外键")
    private String userNum;

    /** 操作类型：0提现1充值 */
    @Excel(name = "操作类型：0提现1充值")
    private Long handleType;

    /** 提现状态： 1待审核 2转账中 3已完成4已拒绝 */
    @Excel(name = "提现状态： 1待审核 2转账中 3已完成4已拒绝")
    private Long withdrawStatus;

    //临时

    //用户
    @Transient
    private String userName;
    @Transient
    private String bankCard;
    //支付方式
    @Transient
    private String paymentType;

    public String getBankCard() {
        return bankCard;
    }

    public void setBankCard(String bankCard) {
        this.bankCard = bankCard;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }


    public String getPaymentType() {
        return paymentType;
    }

    public void setPaymentType(String paymentType) {
        this.paymentType = paymentType;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setDealTime(Date dealTime)
    {
        this.dealTime = dealTime;
    }

    public Date getDealTime()
    {
        return dealTime;
    }
    public void setCostType(Long costType)
    {
        this.costType = costType;
    }

    public Long getCostType()
    {
        return costType;
    }
    public void setMoney(BigDecimal money)
    {
        this.money = money;
    }

    public BigDecimal getMoney()
    {
        return money;
    }
    public void setPutPayType(Long putPayType)
    {
        this.putPayType = putPayType;
    }

    public Long getPutPayType()
    {
        return putPayType;
    }
    public void setPayType(Long payType)
    {
        this.payType = payType;
    }

    public Long getPayType()
    {
        return payType;
    }
    public void setHouseId(Long houseId)
    {
        this.houseId = houseId;
    }

    public Long getHouseId()
    {
        return houseId;
    }
    public void setUserNum(String userNum)
    {
        this.userNum = userNum;
    }

    public String getUserNum()
    {
        return userNum;
    }
    public void setHandleType(Long handleType)
    {
        this.handleType = handleType;
    }

    public Long getHandleType()
    {
        return handleType;
    }
    public void setWithdrawStatus(Long withdrawStatus)
    {
        this.withdrawStatus = withdrawStatus;
    }

    public Long getWithdrawStatus()
    {
        return withdrawStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("dealTime", getDealTime())
                .append("costType", getCostType())
                .append("money", getMoney())
                .append("putPayType", getPutPayType())
                .append("payType", getPayType())
                .append("remark", getRemark())
                .append("houseId", getHouseId())
                .append("userNum", getUserNum())
                .append("handleType", getHandleType())
                .append("withdrawStatus", getWithdrawStatus())


                .append("userName", getUserName())
                .append("bankCard", getBankCard())
                .append("paymentType", getPaymentType())
                .toString();
    }
}
